State change alerts mechanism

ABSTRACT

A communications system including one or more alert gates and an alert controller. Each alert gate is configured to detect a different type of alert feed corresponding to a particular kind of alert. The alert controller is connected to the alert gates and operable to receive detected alerts from the alert gates and to deliver the detected alerts to a user of the communications system.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/725,422 filed on Dec. 21, 2012, which is a continuation of U.S.application Ser. No. 12/615,136 filed on Nov. 9, 2009, which is now U.S.Pat. No. 8,473,572, which is a continuation of U.S. application Ser. No.09/624,192, filed on Jul. 24, 2000, which is now U.S. Pat. No.7,624,172, which claims the benefit of U.S. Provisional Application No.60/195,989 filed on Apr. 7, 2000. Each of the aforementionedapplications and patents is hereby incorporated by reference in theirentirety.

TECHNICAL FIELD

The present invention relates generally to delivering information to aclient. More particularly, the present invention relates to alerting aclient of a state change within an online service.

BACKGROUND

Online service providers are constantly offering new services andupgrading existing services to enhance their subscribers onlineexperience. Subscribers have virtually on-demand access to news,weather, financial, sports, and entertainment services as well as theability to transmit electronic messages and to participate in onlinediscussion groups. For example, subscribers of online service providerssuch as America Online or CompuServe may view and retrieve informationon a wide variety of topics from servers located throughout the world. Aserver may be maintained by the service provider or by a third partyprovider who makes information and services available through thenetwork of computers that make up the online service.

The proliferation of electronic mail (email) as a means of communicationhas facilitated the efforts of online service providers to develop andoffer additional services to improve subscribers access to information.For example, a subscriber to America Online may register for a servicethat tracks stock ticker symbols designated by the subscriber anddelivers a daily report directly to the subscriber by email at the endof each trading day. The daily report includes daily closing quote data,index quotes, a market news summary, news associated with the companyidentified by the ticker symbol, and relevant content links.

America Online offers a service that delivers information to aregistered subscriber according to the subscribers profile. By settingup a subscriber profile specifying certain categories and/or searchwords, a registered subscriber can receive a daily newsletter containingarticles that pertain to the subscribers profile. A subscriber can alsoreceive a daily listing of Internet or online sites (links) related tothe subscribers profiles and can register to receive reminder emailsbefore holidays and/or other special occasions.

America Online also has provided subscribers with the ability to sendand receive instant messages. Instant messages are private onlineconversations between two or more people who have subscribed to theinstant messaging service and have installed the necessary software.Because such online conversations take place virtually in real time,instant messaging can provide immediate access to desired information.Instant messaging is fast becoming a preferred means of communicatingamong online subscribers.

SUMMARY

In one general aspect, a communications system includes one or morealert gates and an alert controller. Each alert gate is configured todetect a different type of alert feed corresponding to a particular typeof alert. The alert controller is connected to the alert gates andoperable to receive detected alerts from the alert gates and to deliverthe detected alerts to a user of the communications system.

The alert controller may be configured to maintain a record of alerttypes registered for by the user of the communications system. The usermay be a subscriber of an instant messaging system. The alert controllermay deliver one or more detected alerts to the subscriber through theinstant messaging system.

The user also may be a subscriber of an online service provider, and thealert controller may deliver one or more detected alerts to thesubscriber through the online service provider. The alert controller maybe connected to an instant messaging controller through a routinggateway.

The instant messaging controller and the alert controller may beassigned to the user of the communications system according to a hashingtechnique. Implementations may include multiple alert controllers.

At least one of the alert gates may detect an alert feed from a remoteserver by sending a status inquiry to the remote server. The remoteserver may be a mail server, a stock server, a third party server, aweather server and a news server, and/or a calendar server.

Implementations also may include an alert controller network havingmultiple alert controllers including the alert controller. The alertcontroller may be configured to communicate with all alert controllersin the alert controller network.

At least one type of alert feed may contain information related to agroup, and the alert controller may be dedicated to receivinginformation related to certain members of the group. The group may be agroup of users, a group of stocks, a group of third parties, and/or agroup of cities.

In another general aspect, a user of a communications system is alertedby detecting, at an alert gate, an alert feed corresponding to an alertindicative of a change in state at a remote server; receiving, at analert controller, detected alerts from the alert gate; and delivering adetected alert to a user of the communications system when the user hasindicated a desire to receive the alert.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a communications system.

FIGS. 2-6 are expansions of aspects of the block diagram of FIG. 1.

FIG. 7 is a flow chart of a communications method.

FIGS. 8-14 are illustrations of different graphical user interfaces.

DESCRIPTION

For illustrative purposes, FIGS. 1-6 describe a communications systemfor implementing techniques for alerting a client of a state changewithin an online service. For brevity, several elements in the figuresdescribed below are represented as monolithic entities. However, aswould be understood by one skilled in the art, these elements each mayinclude numerous interconnected computers and components designed toperform a set of specified operations and/or dedicated to a particulargeographical region.

Referring to FIG. 1, a communications system 100 is capable ofdelivering and exchanging data between a client system 105 and a hostsystem 110 through a communications link 115. The client system 105typically includes one or more client devices 120 and/or clientcontrollers 125. For example, the client system 105 may include one ormore general-purpose computers (e.g., personal computers), one or morespecial-purpose computers (e.g., devices specifically programmed tocommunicate with each other and/or the host system 110), or acombination of one or more general-purpose computers and one or morespecial-purpose computers. The client system 105 may be arranged tooperate within or in concert with one or more other systems, such as forexample, one or more LANs (“Local Area Networks”) and/or one or moreWANs (“Wide Area Networks”).

The client device 120 is generally capable of executing instructionsunder the command of a client controller 125. The client device 120 isconnected to the client controller 125 by a wired or wireless datapathway 130 capable of delivering data.

The client device 120 and client controller 125 each typically includesone or more hardware components and/or software components. An exampleof a client device 120 is a general-purpose computer (e.g., a personalcomputer) capable of responding to and executing instructions in adefined manner. Other examples include a special-purpose computer, aworkstation, a server, a device, a component, other equipment or somecombination thereof capable of responding to and executing instructions.An example of client controller 125 is a software application loaded onthe client device 120 for commanding and directing communicationsenabled by the client device 120. Other examples include a program, apiece of code, an instruction, a device, a computer, a computer system,or a combination thereof, for independently or collectively instructingthe client device 120 to interact and operate as described herein. Theclient controller 125 may be embodied permanently or temporarily in anytype of machine, component, equipment, storage medium, or propagatedsignal capable of providing instructions to the client device 120.

The communications link 115 typically includes a delivery network 160making a direct or indirect communication between the client system 105and the host system 110, irrespective of physical separation. Examplesof a delivery network 160 include the Internet, the World Wide Web,WANs, LANs, analog or digital wired and wireless telephone networks(e.g. PSTN, ISDN, or xDSL), radio, television, cable, satellite, and/orany other delivery mechanism for carrying data. The communications link115 may include communication pathways 150, 155 that enablescommunications through the one or more delivery networks 160 describedabove. Each of the communication pathways 150, 155 may include, forexample, a wired, wireless, cable or satellite communication pathway.

The host system 110 includes a host device 135 capable of executinginstructions under the command and direction of a host controller 140.The host device 135 is connected to the host controller 140 by a wiredor wireless data pathway 145 capable of carrying and delivering data.

The host system 110 typically includes one or more host devices 135and/or host controllers 140. For example, the host system 110 mayinclude one or more general-purpose computers (e.g., personalcomputers), one or more special-purpose computers (e.g., devicesspecifically programmed to communicate with each other and/or the clientsystem 105), or a combination of one or more general-purpose computersand one or more special-purpose computers. The host system 110 may bearranged to operate within or in concert with one or more other systems,such as, for example, one or more LANs (“Local Area Networks”) and/orone or more WANs (“Wide Area Networks”).

The host device 135 and host controller 140 each typically includes oneor more hardware components and/or software components. An example of ahost device 135 is a general-purpose computer (e.g., a personalcomputer) capable of responding to and executing instructions in adefined manner. Other examples include a special-purpose computer, aworkstation, a server, a device, a component, other equipment or somecombination thereof capable of responding to and executing instructions.An example of host controller 140 is a software application loaded onthe host device 135 for commanding and directing communications enabledby the host device 135. Other examples include a program, a piece ofcode, an instruction, a device, a computer, a computer system, or acombination thereof, for independently or collectively instructing thehost device 135 to interact and operate as described herein. The hostcontroller 140 may be embodied permanently or temporarily in any type ofmachine, component, equipment, storage medium, or propagated signalcapable of providing instructions to the host device 135.

FIG. 2 illustrates a communication system 200 including a client system205 communicating with a host system 210 through a communications link215. Client system 205 typically includes one or more client devices 220and one or more client controllers 225 for controlling the clientdevices 220. Host system 210 typically includes one or more host devices235 and one or more host controllers 240 for controlling the hostdevices 235. The communications link 215 may include communicationpathways 250, 255 enabling communications through the one or moredelivery networks 260.

Examples of each element within the communication system of FIG. 2 arebroadly described above with respect to FIG. 1. In particular, the hostsystem 210 and communications link 215 typically have attributescomparable to those described with respect to host system 110 andcommunications link 115 of FIG. 1. Likewise, the client system 205 ofFIG. 2 typically has attributes comparable to and illustrates onepossible embodiment of the client system 105 of FIG. 1.

The client device 220 typically includes a general purpose computer 270having an internal or external storage 272 for storing data and programssuch as an operating system 274 (e.g., DOS, Windows™, Windows 95™,Windows 98™, Windows 2000™, Windows NT™, OS/2, or Linux) and one or moreapplication programs. Examples of application programs include authoringapplications 276 (e.g., word processing, database programs, spreadsheetprograms, or graphics programs) capable of generating documents or otherelectronic content; client applications 278 (e.g., AOL client,CompuServe client, AIM client, AOL TV client, or ISP client) capable ofcommunicating with other computer users, accessing various computerresources, and viewing, creating, or otherwise manipulating electroniccontent; and browser applications 280 (e.g., Netscape's Navigator orMicrosoft's Internet Explorer) capable of rendering standard Internetcontent.

The general-purpose computer 270 also includes a central processing unit282 (CPU) for executing instructions in response to commands from theclient controller 225. In one implementation, the client controller 225includes one or more of the application programs installed on theinternal or external storage 272 of the general-purpose computer 270. Inanother implementation, the client controller 225 includes applicationprograms externally stored in and performed by one or more device(s)external to the general-purpose computer 270.

The general-purpose computer typically will include a communicationdevice 284 for sending and receiving data. One example of thecommunication device 284 is a modem. Other examples include atransceiver, a set-top box, a communication card, a satellite dish, anantenna, or another network adapter capable of transmitting andreceiving data over the communications link 215 through a wired orwireless data pathway 250. The general-purpose computer 270 also mayinclude a TV (“television”) tuner 286 for receiving televisionprogramming in the form of broadcast, satellite, and/or cable TVsignals. As a result, the client device 220 can selectively and/orsimultaneously display network content received by communications device284 and television programming content received by the TV tuner 286.

The general-purpose computer 270 typically will include an input/outputinterface 288 for wired or wireless connection to various peripheraldevices 290. Examples of peripheral devices 290 include, but are notlimited to, a mouse 291, a mobile phone 292, a personal digitalassistant 293 (PDA), a keyboard 294, a display monitor 295 with orwithout a touch screen input, and/or a TV remote control 296 forreceiving information from and rendering information to subscribers.

Although FIG. 2 illustrates devices such as a mobile telephone 292, aPDA 293, and a TV remote control 296 as being peripheral with respect tothe general-purpose computer 270, in another implementation, suchdevices may themselves include the functionality of the general-purposecomputer 270 and operate as the client device 220. For example, themobile phone 292 or the PDA 293 may include computing and networkingcapabilities and function as a client device 220 by accessing thedelivery network 260 and communicating with the host system 210.Furthermore, the client system 205 may include one, some or all of thecomponents and devices described above.

Referring to FIG. 3, a communications system 300 is capable ofdelivering and exchanging information between a client system 305 and ahost system 310 through a communication link 315. Client system 305typically includes one or more client devices 320 and one or more clientcontrollers 325 for controlling the client devices 320. Host system 310typically includes one or more host devices 335 and one or more hostcontrollers 340 for controlling the host devices 335. The communicationslink 315 may include communication pathways 350, 355 enablingcommunications through the one or more delivery networks 360.

Examples of each element within the communication system of FIG. 3 arebroadly described above with respect to FIGS. 1 and 2. In particular,the client system 305 and the communications link 315 typically haveattributes comparable to those described with respect to client systems105 and 205 and communications links 115 and 215 of FIGS. 1 and 2.Likewise, the host system 310 of FIG. 3 may have attributes comparableto and illustrates one possible embodiment of the host systems 110 and210 shown in FIGS. 1 and 2, respectively.

The host system 310 includes a host device 335 and a host controller340. The host controller 340 is generally capable of transmittinginstructions to any or all of the elements of the host device 335. Forexample, in one implementation, the host controller 340 includes one ormore software applications loaded on the host device 335. However, inother implementations, as described above, the host controller 340 mayinclude any of several other programs, machines, and devices operatingindependently or collectively to control the host device 335.

The host device 335 includes a login server 370 for enabling access bysubscribers and routing communications between the client system 305 andother elements of the host device 335. The host device 335 also includesvarious host complexes such as the depicted OSP (“Online ServiceProvider”) host complex 380 and IM (“Instant Messaging”) host complex390. To enable access to these host complexes by subscribers, the clientsystem 305 includes communication software, for example, an OSP clientapplication and an IM client application. The OSP and IM communicationsoftware applications are designed to facilitate the subscriber'sinteractions with the respective services and, in particular, mayprovide access to all the services available within the respective hostcomplexes.

Typically, the OSP host complex 380 supports different services, such asemail, discussion groups, chat, news services, and Internet access. TheOSP host complex 380 is generally designed with an architecture thatenables the machines within the OSP host complex 380 to communicate witheach other and employs certain protocols (i.e., standards, formats,conventions, rules, and structures) to transfer data. The OSP hostcomplex 380 ordinarily employs one or more OSP protocols and customdialing engines to enable access by selected client applications. TheOSP host complex 380 may define one or more specific protocols for eachservice based on a common, underlying proprietary protocol.

The IM host complex 390 is generally independent of the OSP host complex380, and supports instant messaging services irrespective of asubscriber's network or Internet access. Thus, the IM host complex 390allows subscribers to send and receive instant messages, whether or notthey have access to any particular ISP. The IM host complex 390 maysupport associated services, such as administrative matters,advertising, directory services, chat, and interest groups related tothe instant messaging. The IM host complex 390 has an architecture thatenables all of the machines within the IM host complex to communicatewith each other. To transfer data, the IM host complex 390 employs oneor more standard or exclusive IM protocols.

The host device 335 may include one or more gateways that connect andtherefore link complexes, such as the OSP host complex gateway 385 andthe IM host complex gateway 395. The OSP host complex gateway 385 andthe IM host complex 395 gateway may directly or indirectly link the OSPhost complex 380 with the IM host complex 390 through a wired orwireless pathway. Ordinarily, when used to facilitate a link betweencomplexes, the OSP host complex gateway 385 and the IM host complexgateway 395 are privy to information regarding the protocol typeanticipated by a destination complex, which enables any necessaryprotocol conversion to be performed incident to the transfer of datafrom one complex to another. For instance, the OSP host complex 380 andIM host complex 390 generally use different protocols such thattransferring data between the complexes requires protocol conversion byor at the request of the OSP host complex gateway 385 and/or the IM hostcomplex gateway 395.

Referring to FIG. 4, a communications system 400 is capable ofdelivering and exchanging information between a client system 405 and ahost system 410 through a communication link 415. Client system 405typically includes one or more client devices 420 and one or more clientcontrollers 425 for controlling the client devices 420. Host system 410typically includes one or more host devices 435 and one or more hostcontrollers 440 for controlling the host devices 435. The communicationslink 415 may include communication pathways 450, 455 enablingcommunications through the one or more delivery networks 460. As shown,the client system 405 may access the Internet 465 through the hostsystem 410.

Examples of each element within the communication system of FIG. 4 arebroadly described above with respect to FIGS. 1-3. In particular, theclient system 405 and the communications link 415 typically haveattributes comparable to those described with respect to client systems105, 205, and 305 and communications links 115, 215, and 315 of FIGS.1-3. Likewise, the host system 410 of FIG. 4 may have attributescomparable to and illustrates one possible embodiment of the hostsystems 110, 210, and 310 shown in FIGS. 1-3, respectively. However,FIG. 4 describes an aspect of the host system 410, focusing primarily onone particular implementation of OSP host complex 480. For purposes ofcommunicating with an OSP host complex 480, the delivery network 460 isgenerally a telephone network.

The client system 405 includes a client device 420 and a clientcontroller 425. The client controller 425 is generally capable ofestablishing a connection to the host system 410, including the OSP hostcomplex 480, the IM host complex 490 and/or the Internet 465. In oneimplementation, the client controller 425 includes an OSP applicationfor communicating with servers in the OSP host complex 480 usingexclusive OSP protocols. The client controller 425 also may includeapplications, such as an IM client application, and/or an Internetbrowser application, for communicating with the IM host complex 490 andthe Internet 465.

The host system 410 includes a host device 435 and a host controller440. The host controller 440 is generally capable of transmittinginstructions to any or all, of the elements of the host device 435. Forexample, in one implementation, the host controller 440 includes one ormore software applications loaded on one or more elements of the hostdevice 435. However, in other implementations, as described above, thehost controller 440 may include any of several other programs, machines,and devices operating independently or collectively to control the hostdevice 435.

The host system 410 includes a login server 470 capable of enablingcommunications with and authorizing access by client systems 405 tovarious elements of the host system 410, including an OSP host complex480 and an IM host complex 490. The login server 470 may implement oneor more authorization procedures to enable simultaneous access to theOSP host complex 480 and the IM host complex 490. The OSP host complex480 and the IM host complex 490 are connected through one or more OSPhost complex gateways 485 and one or more IM host complex gateways 495.Each OSP host complex gateway 485 and IM host complex gateway 495 mayperform any protocol conversions necessary to enable communicationbetween the OSP host complex 480, the IM host complex 490, and theInternet 465.

The OSP host complex 480 supports a set of services from one or moreservers located internal to and external from the OSP host complex 480.Servers external to the OSP host complex 480 generally may be viewed asexisting on the Internet 465. Servers internal to the OSP complex 480may be arranged in one or more configurations. For example, servers maybe arranged in large centralized clusters known as farms 4802 or inlocalized clusters known as pods 4804.

Farms 4802 are groups of servers located at centralized locations withinthe OSP host complex 480. Farms 4802 generally are dedicated toproviding particular functionality and services to subscribers andclients from a centralized location, regardless of the location of thesubscriber or client. Farms 4802 are particularly useful for providingservices that depend upon other processes and services for information,such as, for example, chat, email, instant messaging, news, newsgroups,search, stock updates, and weather. Thus, farms 4802 tend to rely onconnections with external resources such as the Internet 465 and/orother servers within the OSP host complex 480.

To reduce the time delays and congestion inherent in centralizedprocessing, some services offered by the OSP host complex 480 areprovided from localized servers, generally known as pods 4804. Each pod4804 includes one or more interrelated servers capable of operatingtogether to provide one or more services offered by the OSP host complex480 in a geographically localized manner, the servers within a pod 4804generally operating independently rather than relying on resourcesexternal to the pod 4804 to operate. A pod 4804 may cache contentreceived from external sources, such as farms 4802 or the Internet 465,making frequently requested information readily available to localsubscribers served by the pod 4804. In this way, pods 4804 areparticularly useful in providing services that are independent of otherprocesses and servers such as, for example, routing, keywords, anddownloading certain software and graphical interface updates withreduced processing time and congestion. The determination of whichservers and processes are located in the pod 4804 is made by the OSPaccording to load distribution, frequency of requests, demographics, andother factors.

In addition to farms 4802 and pods 4804, the implementation of FIG. 4also includes one or more non-podded servers 4806. In general, thenon-podded server 4806 may be dedicated to performing a particularservice that relies on other processes and services for information andmay be directly or indirectly connected to resources outside of the OSPhost complex 480, such as the Internet 465 and the IM host complex 490,through an OSP gateway 4808. In the event that subscriber usage of theparticular service is relatively high, the non-podded server 4806 may beincluded in a farm.

In the implementation of FIG. 4, a pod 4810, shown in more detail,includes a routing processor 4812. In a packet-based implementation, theclient system 405 may generate information requests, convert therequests into data packets, sequence the data packets, perform errorchecking and other packet-switching techniques, and transmit the datapackets to the routing processor 4812. Upon receiving data packets fromthe client system 405, the routing processor 4812 may directly orindirectly route the data packets to a specified destination within oroutside of the OSP host complex 480. In general, the routing processor4812 will examine an address field of a data request, use a mappingtable to determine the appropriate destination for the data request, anddirect the data request to the appropriate destination.

For example, in the event that a data request from the client system 405can be satisfied locally, the routing processor 4812 may direct the datarequest to a local server 4814 in the pod 4810. In the event that thedata request cannot be satisfied locally, the routing processor 4812 maydirect the data request internally to one or more farms 4802, one ormore other pods 4804, or one or more non-podded servers 4806 in the OSPhost complex 480, or may direct the data request externally to theInternet 465 or the IM host complex 490 through an OSP/pod gateway 4816.

The routing processor 4812 also may direct data requests and/orotherwise facilitate communication between the client system 405 and theInternet 465. In one implementation, the client system 405 uses an OSPclient application to convert standard Internet content and protocolsinto OSP protocols and vice versa. For example, when a browserapplication transmits a request in standard Internet protocol, the OSPclient application can intercept the request, convert the request intoan OSP protocol and send the converted request to the routing processor4812 in the OSP host complex 480. The routing processor 4812 recognizesthe Internet 465 as the destination and routes the data packets to an IP(“Internet Protocol”) tunnel 4818. The IP tunnel 4818 converts the datafrom the OSP protocol back into standard Internet protocol and transmitsthe data to the Internet 465. The IP tunnel 4818 also converts the datareceived from the Internet in the standard Internet protocol back intothe OSP protocol and sends the data to the routing processor 4812 fordelivery back to the client system 405. At the client system 405, theOSP client application converts the data in the OSP protocol back intostandard Internet content for communication with the browserapplication.

The IP tunnel 4818 may act as a buffer between the client system 405 andthe Internet 465, and may implement content filtering and time savingtechniques. For example, the IP tunnel 4818 can check parental controlssettings of the client system 405 and request and transmit content fromthe Internet 465 according to the parental control settings. Inaddition, the IP tunnel 4818 may include a number a caches for storingfrequently accessed information. If requested data is determined to bestored in the caches, the IP tunnel 4818 may send the information to theclient system 405 from the caches and avoid the need to access theInternet 465.

In another implementation, the client system 405 may use standardInternet protocols and formatting to access the pod 4810 and theInternet 465. For example, the subscriber can use an OSP TV clientapplication having an embedded browser application installed on theclient system 405 to generate a request in standard Internet protocol,such as HTTP (“HyperText Transport Protocol”). In a packet-basedimplementation, data packets may be encapsulated inside a standardInternet tunneling protocol, such as, for example, UDP (“User DatagramProtocol”) and routed to a web tunnel 4820. The web tunnel 4820 may be aL2TP (“Layer Two Tunneling Protocol”) tunnel capable of establishing apoint-to-point protocol (PPP) session with the client system 405. Theweb tunnel 4820 provides a gateway to the routing processor 4812 withinthe pod 4810, the Internet 465, and a web proxy 4822.

The web proxy 4822 can look up subscriber information from the IPaddress of the client system 405 to determine the subscriber's parentalcontrols settings and other demographic information. In this way, theweb proxy 4822 can tailor the subscriber's content and user interfaces.The web proxy 4822 can also perform caching functions to store certainURLs (“Uniform Resource Locators”) and other electronic content so thatthe web proxy 4822 can locally deliver information to the client system405 and avoid the need to access the Internet 465 in the event that datarequested by the client system 405 has been cached.

Referring to FIG. 5, a communications system 500 is capable ofdelivering and exchanging information between a client system 505 and ahost system 510 through a communication link 515. Client system 505typically includes one or more client devices 520 and one or more clientcontrollers 525 for controlling the client devices 520. Host system 510typically includes one or more host devices 535 and one or more hostcontrollers 540 for controlling the host devices 535. The communicationslink 515 may include communication pathways 550, 555 enablingcommunications through the one or more delivery networks 560. As shown,the client system 505 may access the Internet 565 through the hostsystem 510.

Examples of each element within the communication system of FIG. 5 arebroadly described above with respect to FIGS. 1-4. In particular, theclient system 505 and the communications link 515 typically haveattributes comparable to those described with respect to client systems105, 205, 305, and 405 and communications links 115, 215, 315, and 415of FIGS. 1-4. Likewise, the host system 510 of FIG. 5 may haveattributes comparable to and illustrates one possible embodiment of thehost systems 110, 210, 310, and 410 shown in FIGS. 1-4, respectively.However, FIG. 5 describes an aspect of the host system 510, focusingprimarily on one particular implementation of IM host complex 590. Forpurposes of communicating with the IM host complex 590, the deliverynetwork 560 is generally a telephone network.

The client system 505 includes a client device 520 and a clientcontroller 525. The client controller 525 is generally capable ofestablishing a connection to the host system 510, including the OSP hostcomplex 580, the IM host complex 590 and/or the Internet 565. In oneimplementation, the client controller 525 includes an IM application forcommunicating with servers in the IM host complex 590 utilizingexclusive IM protocols. The client controller 525 also may includeapplications, such as an OSP client application, and/or an Internetbrowser application for communicating with the OSP host complex 580 andthe Internet 565, respectively.

The host system 510 includes a host device 535 and a host controller540. The host controller 540 is generally capable of transmittinginstructions to any or all of the elements of the host device 535. Forexample, in one implementation, the host controller 540 includes one ormore software applications loaded on one or more elements of the hostdevice 535. However, in other implementations, as described above, thehost controller 540 may include any of several other programs, machines,and devices operating independently or collectively to control the hostdevice 535.

The host System 510 includes a login server 570 capable of enablingcommunications with and authorizing access by client systems 505 tovarious elements of the host system 510, including an OSP host complex580 and an IM host complex 590. The login server 570 may implement oneor more authorization procedures to enable simultaneous access to theOSP host complex 580 and the IM host complex 590. The OSP host complex580 and the IM host complex 590 are connected through one or more OSPhost complex gateways 585 and one or more IM host complex gateways 595.Each OSP host complex gateway 585 and IM host complex gateway 595 mayperform any protocol conversions necessary to enable communicationbetween the OSP host complex 580, the IM host complex 590, and theInternet 565.

To access the IM host complex 590 to begin an instant messaging session,the client system 505 establishes a connection to the login server 570.The login server 570 typically determines whether the particularsubscriber is authorized to access the IM host complex 590 by verifyinga subscriber identification and password. If the subscriber isauthorized to access the IM host complex 590, the login server 570employs a hashing technique on the subscriber's screen name to identifya particular IM server 5902 for use during the subscriber's session. Thelogin server 570 provides the client system 505 with the IP address ofthe particular IM server 5902, gives the client system 505 an encryptedkey (i.e., a cookie), and breaks the connection. The client system 505then uses the IP address to establish a connection to the particular IMserver 5902 through the communications link 515, and obtains access tothat IM server 5902 using the encrypted key. Typically, the clientsystem 505 will be equipped with a Winsock API (“Application ProgrammingInterface”) that enables the client system 505 to establish an open TCPconnection to the IM server 5902.

Once a connection to the IM server 5902 has been established, the clientsystem 505 may directly or indirectly transmit data to and accesscontent from the IM server 5902 and one or more associated domainservers 5904. The IM server 5902 supports the fundamental instantmessaging services and the domain servers 5904 may support associatedservices, such as, for example, administrative matters, directoryservices, chat and interest groups. In general, the purpose of thedomain servers 5904 is to lighten the load placed on the IM server 5902by assuming responsibility for some of the services within the IM hostcomplex 590. By accessing the IM server 5902 and/or the domain server5904, a subscriber can use the IM client application to view whetherparticular subscribers (“buddies”) are online, exchange instant messageswith particular subscribers, participate in group chat rooms, tradefiles such as pictures, invitations or documents, find other subscriberswith similar interests, get customized news and stock quotes, and searchthe Web.

In the implementation of FIG. 5, the IM server 5902 is directly orindirectly connected to a routing gateway 5906. The routing gateway 5906facilitates the connection between the IM server 5902 and one or morealert multiplexors 5908, for example, by serving as a link minimizationtool or hub to connect several IM servers to several alert multiplexors.In general, an alert multiplexor 5908 maintains a record of alerts andsubscribers registered to receive the alerts.

Once the client system 505 is connected to the alert multiplexor 5908, asubscriber can register for and/or receive one or more types of alerts.The connection pathway between the client system 505 and the alertmultiplexor 5908 is determined by employing another hashing technique atthe IM server 5902 to identify the particular alert multiplexor 5908 tobe used for the subscriber's session. Once the particular multiplexor5908 has been identified, the IM server 5902 provides the client system505 with the IP address of the particular alert multiplexor 5908 andgives the client system 505 an encrypted key (i.e., a cookie). Theclient system 505 then uses the IP address to connect to the particularalert multiplexor 5908 through the communication link 515 and obtainsaccess to the alert multiplexor 5908 using the encrypted key.

The alert multiplexor 5908 is connected to an alert gate 5910 that, likethe IM host complex gateway 595, is capable of performing the necessaryprotocol conversions to form a bridge to the OSP host complex 580. Thealert gate 5910 is the interface between the IM host complex 590 and thephysical servers, such as servers in the OSP host complex 580, wherestate changes are occurring. In general, the information regarding statechanges will be gathered and used by the IM host complex 590. However,the alert multiplexor 5908 also may communicate with the OSP hostcomplex 580 through the IM gateway 595, for example, to provide theservers and subscribers of the OSP host complex 580 with certaininformation gathered from the alert gate 5910.

The alert gate 5910 can detect an alert feed corresponding to aparticular type of alert. The alert gate 5910 may include a piece ofcode (alert receive code) capable of interacting with another piece ofcode (alert broadcast code) on the physical server where a state changeoccurs. In general, the alert receive code installed on the alert gate5910 instructs the alert broadcast code installed on the physical serverto send an alert feed to the alert gate 5910 upon the occurrence of aparticular state change. Upon detecting an alert feed, the alert gate5910 contacts the alert multiplexor 5908, which in turn, informs theclient system 505 of the detected alert feed.

In the implementation of FIG. 5, the IM host complex 590 also includes asubscriber profile server 5912 connected to a database 5914 for storinglarge amounts of subscriber profile data. The subscriber profile server5912 may be used to enter, retrieve, edit, manipulate, or otherwiseprocess subscriber profile data. In one implementation, a subscriber'sprofile data includes, for example, the subscriber's buddy list, alertpreferences, designated stocks, identified interests, and geographiclocation. The subscriber may enter, edit and/or delete profile datausing an installed IM client application on the client system 505 tointeract with the subscriber profile server 5912.

Because the subscriber's data is stored in the IM host complex 590, thesubscriber does not have to reenter or update such information in theevent that the subscriber accesses the IM host complex 590 using new ora different client system 505. Accordingly, when a subscriber accessesthe IM host complex 590, the IM server 5902 can instruct the subscriberprofile server 5912 to retrieve the subscriber's profile data from thedatabase 5914 and to provide, for example, the subscriber's buddy listto the IM server 5902 and the subscriber's alert preferences to thealert multiplexor 5908. The subscriber profile server 5912 also maycommunicate with other servers in the OSP host complex 590 to sharesubscriber profile data with other services. Alternatively, user profiledata may be saved locally on the client device 505.

Referring to FIG. 6, a communications system 600 is capable ofdelivering and exchanging information between a client system 605 and ahost system 610 through a communication link 615. Client system 605typically includes one or more client devices 620 and one or more clientcontrollers 625 for controlling the client devices 620. Host system 610typically includes one or more host devices 635 and one or more hostcontrollers 640 for controlling the host devices 635. The communicationslink 615 may include communication pathways 650, 655 enablingcommunications through the one or more delivery networks 660.

Examples of each element within the communication system of FIG. 6 arebroadly described above with respect to FIGS. 1-5. In particular, theclient system 605 and the communications link 615 typically haveattributes comparable to those described with respect to client systems105, 205, 305, 405 and 505 and communications links 115, 215, 315, 415and 515 of FIGS. 1-5. Likewise, the host system 610 of FIG. 6 may haveattributes comparable to and illustrates one possible embodiment of thehost systems 110, 210, 310, 410 and 510 shown in FIGS. 1-5,respectively. However, FIG. 6 describes an aspect of the host system610, focusing primarily on one particular implementation of IM hostcomplex 690. For purposes of communicating with the IM host complex 690,the delivery network 660 is generally a telephone network.

The client system 605 includes a client device 620 and a clientcontroller 625. The client controller 625 is generally capable ofestablishing a connection to the host system 610, including the IM hostcomplex 690. In one implementation, the client controller 625 includesan IM application for communicating with servers in the IM host complex690 utilizing exclusive IM protocols.

The host system 610 includes a host device 635 and a host controller640. The host controller 640 is generally capable of transmittinginstructions to any or all of the elements of the host device 635. Forexample, in one implementation, the host controller 640 includes one ormore software applications loaded on one or more elements of the hostdevice 635. However, in other implementations, as described above, thehost controller 640 may include any of several other programs, machines,and devices operating independently or collectively to control the hostdevice 635.

The host system 610 includes a login server 670 capable of enablingcommunications with and authorizing access by client systems 605 tovarious elements of the host system 610, including the IM host complex690. The IM host complex 690 includes an IM server network 6902 and analert multiplexor network 6908. The IM server network 6902 is aninterconnected network of IM servers and the alert multiplexor network6908 is an interconnected network of alert multiplexors. Each IM serverand each alert multiplexor can directly or indirectly communicate andexchange information with all of the IM servers in the IM server network6902 and all of the alert multiplexors in the alert multiplexor network6908. Each of the alert multiplexors in the alert multiplexor network6908 is connected to several alert gates 6910 that receive differenttypes of alerts. In the implementation of FIG. 6, the IM server network6902 and the alert multiplexor network 6908 are interconnected by arouting gateway 6906 that serves as a common hub to reduce the number ofconnections.

A subscriber typically will be assigned to one IM server in the IMserver network 6902 and to one alert multiplexor in the alertmultiplexor network 6908 during a session based on one or more hashingtechniques. However, the IM servers and the alert multiplexors arecapable of storing subscriber information and other electronic contentthat may be accessed by the other IM servers and alert multiplexors. Inone implementation, for example, each IM server in the IM server network6902 may be dedicated to serving a particular set of registeredsubscribers. Because all of the IM servers can communicate with eachother, all subscribers can communicate with each other through instantmessaging. In another implementation, each alert multiplexor in thealert multiplexor network 6908 may be dedicated to storing informationabout a particular set or subset of alerts. Because all of the alertmultiplexors can communicate with each other, all registered subscriberscan receive all types of alerts. This networking arrangement enables theload to be distributed among the various servers in the IM host complex690 while still enabling a subscriber to communicate, share information,or otherwise interact with other subscribers and servers in the IM hostcomplex 690.

Referring to FIG. 7, a client device 702, an alert multiplexor 704, aprofile server 706, and an alert gate 708 interact according to aprocedure 700 to deliver an alert message to a subscriber. The procedure700 may be implemented by any type of hardware, software, device,computer, computer system, equipment, component, program, application,code, storage medium, or propagated signal.

Initially, a subscriber may use the client device 702 to connect to thealert multiplexor 704 (step 710). Typically, the client device 702 willinclude an installed IM client application and will be equipped with aWinsock API that enables the client device 702 to establish an open TCPconnection to the alert multiplexor 704. It also may be necessary toperform one or more hashing techniques to identify the alert multiplexor704 to be used for the subscriber's session.

Once a connection to the alert multiplexor 704 has been established, asubscriber may use the client device 702 to send an alert registrationto the alert multiplexor 704 (step 715). The alert registration mayinform the alert multiplexor 704 that the subscriber desires to enablethe alert capabilities of the alert multiplexor 704. The alertmultiplexor 704, in turn, may receive the alert registration from theclient device 702 (step 720) and enable the alert capabilities such as,for example, stock alerts, mail alerts, weather alerts, calendar alerts,news alerts, third party alerts, or any other comparable type of alert.

A subscriber may also use the client device 702 to generate a subscriberrecord that includes the particular types of alerts desired by thesubscriber and other alert preferences. The alert preferences mayinclude the conditions for tripping the alerts, the timing of thealerts, and/or the presentation method of the alerts. In general, alertmessages may take the form of an instant message, an icon, a pop-upwindow, and/or an audio alarm that appears during a subscriber's IMsession. A subscriber also may choose to receive offline notification ofalerts, so that the subscriber may be informed of certain changes instate even when the subscriber is not running the IM client application.For example, a subscriber may set up alert preferences to requestnotification, for example, by telephone, email, or pager.

In one implementation, an IM client application installed on a clientdevice 702 may generate a URL based on the subscriber record. The URLmay specify, for example, the protocol, the site name, and a path thatcorresponds to the alert preferences. The client device 702 may use abrowser application, such as, for example, an embedded HTTP engine inthe IM client application, to navigate to the URL to directly orindirectly retrieve data corresponding to particular types of alerts.

Typically, a subscriber will generate a subscriber record during aninitial session by interacting with UIs (“User Interfaces”) presented onthe client device 702. The subscriber record may be stored locally onthe client device 702 so that the subscriber does not have to reenterthe alert preferences for subsequent sessions unless, of course, thesubscriber is using a different client device or desires to change alertpreferences. Additionally, the subscriber record may be persistentlystored in a centralized database in the host system.

In the event that the subscriber record is stored in a database in thehost system, the alert multiplexor 704 may request the subscriber recordfrom the profile server 706 (step 725). The profile server 706 mayreceive the request for the subscriber record (step 730), retrieve thesubscriber record from the database (step 735), and send the subscriberrecord to the alert multiplexor 704 (step 740).

The alert multiplexor 704 receives the subscriber record from theprofile server 706 (step 745) and then communicates with the alert gate708. In one implementation, the alert multiplexor 704 may send an alertrequest to the alert gate 708 based on the subscriber record (step 750).Namely, the alert multiplexor 704 may instruct the alert gate 708 tostart searching for alert feeds corresponding to any alerts designatedin the subscriber record and/or to send alert notifications when analert feed corresponding to any alerts designated in the subscriberrecord is detected. The alert gate 708 receives the alert request fromthe alert multiplexor 704 (step 755) and, in response, searches for anddetects alert feeds (step 760).

In another implementation, the alert gate 708 continuously searches fora particular type of alert feed. The alert gate 708 may be loaded with asoftware program or piece of code that instructs the alert gate 708 todetect a particular alert feed from a remote server, such as, forexample, a remote server in an OSP complex or the Internet. The alertfeed may correspond to one subscriber or a group of subscribersdepending upon load distribution. Typically, the remote server will beloaded with a software program or piece of code that instructs theserver to broadcast an alert feed based on some triggering event to oneor more specified alert gates. The broadcast of the alert feed may be acontinuous or periodic broadcast of the state, may be a broadcast inresponse to a change in state, or may be a broadcast in response to astatus inquiry (e.g., polling). As used herein, state refers to anycondition of being that may be represented by the remote server. Achange in state can be any updated condition of being and may beinternal or external to the remote sever.

Upon detecting the alert feed (step 760), the alert gate 708 may send analert notification to the alert multiplexor 704 (step 765). The alertnotification will inform the alert multiplexor 704 of the alert feed,the condition that triggered the alert feed, and/or the need to contacta particular subscriber. In one implementation, the alert gate 708 maysend an alert notification to an alert multiplexor 704 that isassociated with a particular subscriber during a session. This istypically the case for alerts relating to personalized information suchas, for example, mail alerts and calendar alerts. In anotherimplementation, the alert gate 708 may send an alert notification to analert multiplexor 704 that that is associated with a particular type ofalert. This is generally the case for alerts relating to information ofinterest to a large number of subscribers, such as, for example, stockalerts, weather alerts, news alerts, and third party alerts.

Typically, the alert multiplexor 704 will be loaded with a softwareprogram or piece of code for instructing the alert multiplexor 704 toreceive and/or retrieve messages from the alert gate 708. The alertmultiplexor 704 may be set to continuously or periodically receiveand/or retrieve messages the alert gate 708. The alert multiplexor 704may receive the alert notification from the alert gate 708 (step 770),and may then determine whether the alert notification corresponds to analert of interest to a registered subscriber. In the event that asubscriber has requested notification about the particular alert feed,the alert multiplexor 704 sends an alert message to the client device702 of the registered subscriber (step 775). If the subscriber hasrequested offline notification about the particular alert, the alertmultiplexor 704 may send an alert message to the appropriate offlinedevice of the subscriber. The alert message may contain informationabout the alert feed and/or the condition that triggered the alert feed.The alert multiplexor 704 alone or in conjunction with other servers mayperform sorting, prioritizing, or other types of organizationalprocessing on the alert messages so that the client device 702 isnotified in an optimal fashion.

The client device 702 receives the alert message from the alertmultiplexor 704 (step 780), and then responds to the alert message (step785). For example, the subscriber may use the client device 702 togenerate a response appropriate to the particular alert feed ortriggering condition. Alternatively, the client device 702 may respondautomatically to particular alert feeds and/or triggering conditions ina defined manner.

A stock alert is one example of an alert message that may be requestedby a subscriber. FIGS. 8-10 illustrate several different UIs that may beused to set a subscriber's stock alert preferences by selecting certainoptions of and inputting information into the fields of the UIs.

Referring to FIG. 8, a UI 800 may include a ticker symbol field 805 forentering the ticker symbol of one or more stocks to track and an indexfield 810 for selecting one or more stock indexes to track. The UI alsomay include a refresh field 815 for designating the interval at whichthe stock data is updated. The UI 800 may further include a stock alertbutton 820 for setting and editing stock alert preferences.

Referring to FIG. 9, a UI 900 may include an enabled field 905 forenabling a stock alert for a particular stock and a stock selectionfield 910 for selecting a particular stock to trip a stock alertmessage. The UI 900 also may include a notification field 915 forselecting the conditions that trip the stock alert. Typically, a stockalert will be tripped based on price and/or volume, such as, forexample, when the price exceeds a certain level, is below a certainlevel, is above the 52 week high, is below 52 week low, or is above orbelow a previous close by a certain amount, or when the volume oftrading is above or below a certain amount. The UI 900 also may includean alert presentation field 920 for selecting the manner in which analert message is presented to a subscriber, for example, by showing analert notification window and/or playing a sound.

Referring to FIG. 10, a UI 1000 may include a display field 1005 forshowing whether a stock alert has been tripped, the ticker symbol of thestock, and the conditions that trip the stock alert. The UI 1000 alsomay include an alert selection field 1010 for selecting which of thestock alerts to display. The UI 1000 may include an add button 1015, anedit button 1020, and a remove button 1025 for adding, editing andremoving certain stock alerts and may include a reset button 1030 forresetting a stock alert that has been tripped. The UI 1000 also mayinclude a day selection field 1035 and time selection field 1040 forselecting when to run the stock alerts, for example, only on certaindays and/or only at certain times during the day.

Referring to FIG. 11, a UI 1100 illustrates a stock alert message thatmay be presented to a subscriber. The stock alert message may be anytype of instant message, pop-up window, icon and/or audible alarmcapable of getting a subscriber's attention. The stock alert message mayinclude an information field 1105 containing information such as thelast price, the dollar change, the percent change, the high, the low,the open, the previous close, the 52 week high, the 52 week low, and/orthe trading volume. The UI 1100 also may include an edit button 1110 forediting the presentation of the alert, a chart button 1115 fordisplaying a stock performance chart, and a more information button 1120for linking to OSP or Internet websites that provide more detailedinformation about the particular stock, financial advice, and/or contactinformation for online or offline stock brokers.

As the stock market fluctuates, a stock alert server, for example, in anOSP host complex or the Internet, broadcasts a stock alert feed toindicate the changing stock prices. The stock alert feed may correspondto one stock, a group of stocks, or all stocks depending upon loaddistribution. A stock alert gate detects the stock alert feed and then,alone or in conjunction with one or more alert multiplexors, sorts andsends alert notifications to an alert multiplexor network. Each alertmultiplexor in the alert multiplexor network may be dedicated to stockalerts for a certain set of stock ticker symbols and for a certain setof registered subscribers. By communicating with each other, all of thealert multiplexors in the alert multiplexor network have access toinformation including the complete set of subscribers registered toreceive stock alerts, the selected stocks of each registered subscriber,the alert multiplexor and the IM server dedicated to each subscriberduring a session, and the alert multiplexors dedicated to the selectedstocks. Based on this information, the alert multiplexor network cansend, deliver, retrieve, and/or receive stock alert notificationscorresponding to all of the stocks selected by all of the registeredsubscribers and may command the IM client application of each registeredsubscriber to display an appropriate stock alert message.

A mail alert is another example of an alert message that may berequested by a subscriber. FIGS. 12 and 13 illustrate different UIs thatmay be used to set a subscriber's mail alert preferences by selectingcertain options and inputting information into the fields of the UIs.

Referring to FIG. 12, a UI 1200 may include an alert notification field1205 for setting and editing certain mail alert preferences includingthe manner in which an alert message is presented to a subscriber, forexample, by showing an alert notification window and/or playing a sound.The UI 1200 also may include an email address display field 1210 forshowing the email addresses that trip a mail alert. The UI 1200 mayinclude an add mail box button 1215, an edit button 1220, and a removebutton 1225 for adding, editing and removing email addresses that trip amail alert.

Referring to FIG. 13, a UI 1300 may include a type field 1305 forentering the type of email account, e.g., a POP3 mail account, and anemail address field 1310 for entering the type and address of an emailaccount that trips a mail alert. The UI 1300 also may include a passwordfield 1315 for entering the password to the email account, a server namefield 1320 for entering the name of the server for the email account, aprogram field 1325 for entering the program used to access the emailaccount, and a time field 1330 for entering the interval at which theemail account is checked.

Referring to FIG. 14, a UI 1400 illustrates a mail alert message thatmay be presented to a subscriber. The mail alert message may be any typeof instant message, pop-up window, icon and/or audible alarm capable ofgetting a subscriber's attention. The mail alert message may include aninformation field 1405 containing information such as one or more emailaddresses, whether each of the email address contains unread email, andwhen the email address was last checked for unread email.

As email messages are received, a mail alert server, for example, in anOSP host complex or the Internet, broadcasts a mail alert feed toindicate changing mail status. The mail alert feed may correspond to onesubscriber, a group of subscribers, or all subscribers depending uponload distribution. The mail alert feed is sent to a mail gateway thatperforms any necessary protocol conversion and then directs the mailalert feed to a mail alert gate.

The mail alert gate detects the mail alert feed and then, alone or inconjunction with one or more alert multiplexors, sorts and sends mailalert notifications to an alert multiplexor network. Each alertmultiplexor in the alert multiplexor network may be dedicated toreceiving mail alert notifications for a certain set of registeredsubscribers. Upon receiving a mail alert notification, the alertmultiplexor examines whether the mail alert notification corresponds toany of its subscribers. In the event that the alert notification is forone of its subscribers, the alert multiplexor commands the IM clientapplication running on the subscriber's client device to indicate thatthe subscriber has unread email. Once notified, the subscriber may usethe client device to read the email message, typically with an emailclient application.

Email messages are received and/or stored by a mail server alone or incooperation with a mail repository. The mail server and mail repositorymay be part of an OSP host complex or any type of server capable ofreceiving and/or storing email whether internal or external to the OSPhost complex. Email messages may be received and stored from any type ofemail account including, but not limited to an OSP based email account,an ISP based email account, a Web-based email account, and a POP3 emailaccount.

A third party alert is another example of alert message that may berequested by a subscriber. A third party is broadly understood toinclude any individual or business entity that provides goods orservices. In general, a subscriber may register to receive alerts fromone or more third parties that provide a certain category of services.In one implementation, the OSP queries subscribers as to whether theywould like to receive various categories of third party alerts. Forexample, the OSP may partner with various suppliers of computermerchandise and may query subscribers as to whether they would like toreceive alerts from any or all third parties that supply computermerchandise. In another implementation, a subscriber may register toreceive an alert message at a third party's web site. Once a subscriberhas registered to receive the alert, the third party directly orindirectly sends to the subscriber an alert including, for example, apromotional advertisement, a coupon, a notification that an order isdone and/or a service is complete, and a message regarding confirmation,cancellation, and/or rescheduling of an appointment.

A weather alert is another example of an alert message that may berequested by a subscriber. In one implementation, a subscriber mayregister to receive an alert message that informs the subscriber of aweather forecast and/or adverse weather conditions in a particulargeographic region.

A calendar alert is another example of an alert message that may berequested by a subscriber. In general, a subscriber may register toreceive an alert message that informs the subscriber of important dates,holidays and/or other special occasions. A calendar alert may beprovided to a subscriber in any manner as described herein.

A news alert is another example of an alert message that may berequested by a subscriber. In one implementation, a subscriber mayregister to receive an alert message that informs the subscriber ofselected news items or a listing of Internet or online sites (links)related to selected news items. A news alert may be provided to asubscriber in any manner as described herein.

Other embodiments are within the scope of the following claims.

1. A method comprising: presenting a graphical user interface of aclient application to facilitate management of alert preferencesassociated with the client application; receiving user input by way ofthe graphical user interface; setting, using at least one processor, oneor more alert preferences associated with the client application basedon the received user input; and sending, to a remote server associatedwith the client application, the one or more alert preferencesassociated with the client application.
 2. The method of claim 1,further comprising: detecting an alert in accordance with the one ormore alert preferences; and providing, at a client device and inresponse to the detected alert, a notification of the detected alert. 3.The method of claim 2, wherein the notification of the detected alertcomprises one or more of an instant message, an icon, a pop-up window,or an audio alarm.
 4. The method of claim 2, wherein the client devicecomprises a mobile device.
 5. The method of claim 1, further comprisingsending a request to receive a particular type of alerts.
 6. The methodof claim 5, wherein the request comprises a request to receive one ormore of third party alerts, weather alerts, calendar alerts, or newsalerts.
 7. The method of claim 1, further comprising: determining that aclient device associated with the client application is not running theclient application; and providing, at the client device, a notificationof an alert when the client device is not running the clientapplication.
 8. A method comprising: presenting a graphical userinterface to facilitate management of alert preferences associated witha user profile; receiving user input by way of the graphical userinterface; setting, using at least one processor, one or more alertpreferences associated with the user profile based on the received userinput; and sending, to a remote server, the one or more alertpreferences associated with the user profile.
 9. The method of claim 8,wherein at least one of the one or more alert preferences associatedwith the user profile relates to third party alerts.
 10. The method ofclaim 9, further comprising: receiving a third party alert in accordancewith the one or more alert preferences associated with the user profile;and providing, at a client device and in response to the received thirdparty alert, a notification of the received third party alert.
 11. Themethod of claim 10, wherein the received third party alert comprises oneor more of an advertisement, a coupon, a notification that an order isdone or a service is complete, or a message regarding confirmation,cancellation, or rescheduling of an appointment.
 12. The method of claim8, wherein at least one of the one or more alert preferences associatedwith the user profile relates to calendar alerts.
 13. The method ofclaim 12, further comprising: receiving a calendar alert in accordancewith the one or more alert preferences associated with the user profile;and providing, at a client device and in response to the receivedcalendar alert, a notification of the received calendar alert.
 14. Themethod of claim 8, wherein at least one of the one or more alertpreferences associated with the user profile relates to news alerts. 15.The method of claim 14, further comprising: receiving a news alert inaccordance with the one or more alert preferences associated with theuser profile; and providing, at a client device and in response to thereceived news alert, a notification of the received news alert.
 16. Amobile device comprising: at least one processor; and at least onenon-transitory computer-readable storage medium storing instructionsthereon that, when executed by the at least one processor, cause themobile device to: present a graphical user interface of a clientapplication to facilitate management of alert preferences associatedwith the client application; receive user input by way of the graphicaluser interface; set one or more alert preferences associated with theclient application based on the received user input; and send, to aremote server associated with the client application, the one or morealert preferences associated with the client application.
 17. The mobiledevice of claim 16, further comprising instructions that, when executedby the at least one processor, cause the mobile device to: detect analert in accordance with the one or more alert preferences; and provide,in response to the detected alert, a notification of the detected alert.18. The mobile device of claim 17, wherein the notification of thedetected alert comprises one or more of an instant message, an icon, apop-up window, or an audio alarm.
 19. The mobile device of claim 16,further comprising instructions that, when executed by the at least oneprocessor, cause the mobile device to: determine that the mobile deviceis not running the client application; and provide a notification of analert when the mobile device is not running the client application. 20.The mobile device of claim 16, wherein the one or more alert preferencesassociated with the client application relates to one or more of thirdparty alerts, weather alerts, calendar alerts, or news alerts.